package com.lagou.sqlSession;

import java.util.List;

/**
 * @author buddy
 * @date 2021/8/25
 */
public interface SqlSession {
    /**
     * 查询所有 E：代表只要类型一样就可以
     * @param statementId 唯一标识，namespace+sqlId
     * @param params 查询参数
     * @param <E> 返回列表类型
     * @return 列表
     */
    <E> List<E> selectList(String statementId,Object... params);

    /**
     * 根据条件查询单个
     * @param statementId 唯一标识，namespace+sqlId
     * @param params 查询参数
     * @param <T> 返回结果类型
     * @return 单个对象
     */
    <T> T selectOne(String statementId,Object... params);

    /**
     * 为 Dao 层接口 代理生成 实现类
     * @param mapperClass dao层接口
     * @param <T> 类信息
     * @return 代理类
     */
    <T> T getMapper(Class<?> mapperClass);
}
